package com.shujia.wyh.day06;

/*
        数组获取最值(获取数组中的最大值最小值)

        分析：
            1、定义一个数组，并对数组进行静态初始化
            2、从数组中任意取出1个数据与其他的数据进行比较大小（一般情况下取第一个，默认它就是最大值）
            3、拿着着第一个元素与其余的元素做比较，如果找到了更大的元素，就把它取代掉，如果说比较的结果是比它小的话，不管他继续向后比较
            4、直到比较到最后一个数，留下的最大值就是数组中的最大值。
 */
public class ArrayTest2 {
    public static void main(String[] args) {
        //定义一个数组，并对数组进行静态初始化
        int[] arr = {211, 32, 1, 5321, 312, 21, 89, 100};

//        //从数组中任意取出第1个数据与其他的数据进行比较大小（一般情况下取第一个，默认它就是最大值）
//        int maxNumber = arr[0];
//
//        //遍历其他元素与第一个元素进行比较
//        for (int i = 1; i < arr.length; i++) {
//            if (arr[i] > maxNumber) {
//                maxNumber = arr[i];
//            }
//        }

        //最后留下的那个值就是数组中元素的最大值。
//        System.out.println("最大值是：" + maxNumber);

        System.out.println("======使用方法改进==========");
        int max = findMaxNumber(arr);
        System.out.println("最大值是：" + max);
        int min = findMinNumber(arr);
        System.out.println("最小值是：" + min);


    }

    /**
     * 返回值类型：int
     * 参数列表：int[] arr
     */
    public static int findMinNumber(int[] arr) {
        //从数组中任意取出第1个数据与其他的数据进行比较大小（一般情况下取第一个，默认它就是最大值）
        int minNumber = arr[0];

        //遍历其他元素与第一个元素进行比较
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < minNumber) {
                minNumber = arr[i];
            }
        }

        return minNumber;
    }


    /**
     * 返回值类型：int
     * 参数列表：int[] arr
     */
    public static int findMaxNumber(int[] arr) {
        //从数组中任意取出第1个数据与其他的数据进行比较大小（一般情况下取第一个，默认它就是最大值）
        int maxNumber = arr[0];

        //遍历其他元素与第一个元素进行比较
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > maxNumber) {
                maxNumber = arr[i];
            }
        }

        return maxNumber;
    }
}
